1. Field of the Invention
This invention relates generally to processor-based systems, and, more particularly, to abandoning an interrupted task in processor-based systems.
2. Description of the Related Art
Businesses may use processor-based systems to perform a variety of tasks. These tasks may include, but are not limited to, developing new software, maintaining databases of information related to operations and management, and hosting a web server that may facilitate communications with customers. To handle such a wide range of tasks, businesses may employ a processor-based system used in a network-centric environment. One example of a processor-based system used in a network-centric environment is a mid-range server system. A single mid-range server system may have a plurality of system boards that may, for example, contain one or more processors and one or more cache memory elements that store copies of frequently used data in close proximity to the one or more processors to provide the one or more processors with faster access to the data. The one or more processors may also include one or more associated memory elements that may store larger blocks of data.
The plurality of system boards in the mid-range server system may be configured as one or more domains, where a domain, for example, may act as a separate machine by running its own instance of an operating system to perform one or more of the configured tasks. For example, one domain may be configured as a web server, another as a database server, and a third as a network server. The demands on the different domains may change over time and thus the configuration of the various domains may be altered to make more efficient use of the available resources. For example, if the number of users attempting to access the web server declines, system boards may be removed from the web domain and added to another domain, such as the domain that supports the database server. As a part of the reconfiguration process, one or more configuration registers in the domains may be updated in a serial manner.
The reconfiguration process may occasionally be interrupted. For example, an error or other undesirable event may occur after a first portion of the registers has been updated, but before the reconfiguration is complete. For another example, a user may decide that it may be desirable to abort before the reconfiguration process is complete. If configuration data has been provided to the first portion of the registers, interrupting the process may leave the system in an incoherent state wherein the first portion of the registers may be in one configuration state and a second portion of the registers may be in a second configuration state. The system may not be able to operate in the incoherent state and may crash.
The chance that the system may enter an incoherent state may be reduced by returning the configuration registers to their pre-reconfiguration state in a controlled manner. However, traditional methods of returning the configuration registers to their pre-reconfiguration state may consume extensive system resources. For example, each time new data is written to the configuration register, essentially all of the new data may also be copied to a separate memory location. If an error, an operator abort, or similar event interrupts the reconfiguration process, the system may be returned to the pre-reconfiguration state by rewriting the stored copy of the data to the portion of the configuration registers that may have been updated. Since errors or other undesirable events are generally less common than reconfigurations, copying essentially all of the data in the configuration registers to a separate memory location before every reconfiguration may be an undesirable expenditure of resources and may decrease the efficiency of the system.